{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "q_learning.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "authorship_tag": "ABX9TyNnSsofHcJHspKxhx/+gkoX",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/letianzj/QuantResearch/blob/master/ml/q_learning.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JlNkxcEuDTVn",
        "colab_type": "text"
      },
      "source": [
        "## Q-Learning (SARSA-MAX) FrozenLake\n",
        "\n",
        "Use Q-Learning (a.k.a SARASA-MAX) to solve FrozenLake game.\n",
        "\n",
        "[OpenAI Gym FrozenLake](https://gym.openai.com/envs/FrozenLake-v0/) is defined on a 4x4 matrix. The agent wants to go from top left (S) to bottom right (G). Each grid can be either frozen surface (F) or hold (H). Four possible actions or moves are Left: 0, Down: 1, Right: 2, Up: 3. If the agent reaches goal (G), she receives reward of 1.\n",
        "\n",
        "Q-Learning is off policy, value based, TD method to solve control problems. The Q-value is updated by\n",
        "\n",
        "$$\n",
        "Q(s, a) \\leftarrow Q(s,a) + \\alpha \\left( r+\\gamma \\underset{a' \\in A}{\\max}Q(s',a') - Q(s,a) \\right)\n",
        "$$\n",
        "\n",
        "In comparison, the original SARSA has\n",
        "\n",
        "$$\n",
        "Q(s, a) \\leftarrow Q(s,a) + \\alpha \\left( r+\\gamma Q(s',a') - Q(s,a) \\right)\n",
        "$$\n",
        "\n",
        "__Reference__\n",
        "* Sutton, Richard S., and Andrew G. Barto. Reinforcement learning: An introduction. MIT press, 2018.\n",
        "* [RL by David Silver](https://www.davidsilver.uk/teaching/)\n",
        "* [Lil'Log](https://lilianweng.github.io/lil-log/)\n",
        "* [Deep Learning with TensorFlow](https://github.com/dragen1860/Deep-Learning-with-TensorFlow-book)\n",
        "* [Reinforcement Learning](https://github.com/dennybritz/reinforcement-learning)\n",
        "* [marcinbogdanski](https://marcinbogdanski.github.io/reinforcement-learning.html)"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0lOf7OSWHOvv",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "import gym"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xtBE-yWBHZZh",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "env = gym.make('FrozenLake-v0', is_slippery=True)   # may not head for the direction chosen"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0QH8az9cJpmI",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "n_episodes = 1000\n",
        "alpha = 0.5                 # TD learning rate\n",
        "epsilon = 0.1               # epsilon greedy\n",
        "epsilon_final = 0.05\n",
        "epsilon_decay = (epsilon-epsilon_final)/n_episodes   # epsilon annealing\n",
        "gamma = 0.99                # discount factor\n",
        "\n",
        "# Q-Table, default to 0\n",
        "Q = np.zeros((env.observation_space.n, env.action_space.n))\n",
        "# action space\n",
        "actions = range(env.action_space.n)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vQotgJIHK4EW",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        },
        "outputId": "0ef36758-7f8c-48d5-a7d9-6029afeb6fe4"
      },
      "source": [
        "reward_history = []\n",
        "step_history = []\n",
        "\n",
        "for n_episode in range(n_episodes):\n",
        "    s = env.reset()          # reset to initial state\n",
        "    # env.render()\n",
        "    done = False\n",
        "    reward = 0.\n",
        "    step = 0\n",
        "\n",
        "    while not done:\n",
        "        # choose action according to epsilon greedy\n",
        "        a = 0\n",
        "        if np.random.rand() < epsilon:\n",
        "            a = env.action_space.sample()\n",
        "        else:   # randomly pick one in case of a tie\n",
        "            candidates = np.argwhere(Q[s, :] == np.amax(Q[s, :]))\n",
        "            candidates = candidates.reshape(-1,)\n",
        "            a = np.random.choice(candidates)\n",
        "\n",
        "        # use a' to interact with environment\n",
        "        s_prime, r, done, info = env.step(a)\n",
        "        # env.render()\n",
        "        \n",
        "        # update q table\n",
        "        max_q_prime = max(Q[s_prime, :])\n",
        "        Q[s, a] = Q[s, a] + alpha * (r + gamma * max_q_prime - Q[s, a])\n",
        "\n",
        "        # update state\n",
        "        step += 1\n",
        "        reward += r\n",
        "        s = s_prime\n",
        "\n",
        "    reward_history.append(reward)\n",
        "    step_history.append(step)\n",
        "\n",
        "    epsilon -= epsilon_decay\n",
        "\n",
        "    if (n_episode + 1) % 200 == 0:\n",
        "        print(f'Episode {n_episode + 1}/{n_episodes}.')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Episode 200/1000.\n",
            "Episode 400/1000.\n",
            "Episode 600/1000.\n",
            "Episode 800/1000.\n",
            "Episode 1000/1000.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oJ5zWez2_dle",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "env.close()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "iFX-ogw0zSQk",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 353
        },
        "outputId": "d997f8b0-0000-44ea-933f-787d123f4cb5"
      },
      "source": [
        "df_stats = pd.DataFrame.from_dict({'rewards': reward_history, 'steps': step_history})\n",
        "fig, ax = plt.subplots(1, 2, figsize=(16,5))\n",
        "df_stats['rewards'].rolling(100).mean().plot(ax=ax[0])\n",
        "ax[0].set_title('Average rewards')\n",
        "df_stats['steps'].rolling(100).mean().plot(ax=ax[1])\n",
        "ax[1].set_title('Average steps')"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.0, 'Average steps')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1152x360 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lAmz6UWC_mex",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}